/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ru.rakev.matcher.builder;

import ru.rakev.matcher.Matcher;
import ru.rakev.producer.builder.CompositeProducerBuilder;

/**
 *
 * @author Rakev
 */
public abstract class ObjectMatcherBuilder<F, C> extends AdapterMatcherBuilder<F, C> {

    public ObjectMatcherBuilder(CompositeProducerBuilder<F, C> producerBuilder) {
        super(producerBuilder);
    }

    public Matcher<F> eq(C expected) {
        Matcher<C> eq = getMatcherFactory().eq(expected);
        return build(eq);
    }

    public Matcher<F> notEq(C notExpected) {
        Matcher<C> eq = getMatcherFactory().eq(notExpected);
        Matcher<C> notEq = getMatcherDecoratorFactory().not(eq);
        return build(notEq);
    }
}
